查看原文
其他

鸟群怎么在天上飞 —— Boids | 算法考古

Craig Reynolds 于1986年制定了一套有序的动物集群运动(如鸟群、鱼群)的计算模型。该模型基于常用于计算机动画或计算机辅助设计的计算机三维几何。他将这种模拟鸟群命名为「boids」。

最简单的鸟群模型由三个运动行为组成,他们描述了每个boid个体如何根据其周围同伴的速度和位置进行移动。

分离:移动以避免过于拥挤

对齐:向群体的平均航向移动

一致性:向群体的平均位置移动

每个 boid 个体都可以得知整体的几何参数,但是“鸟群”的活动要求个体只对其附近的一小部分邻居作出反应。这个附近部分的范围由一个距离(从该个体的中心算起)和一个角度(从其飞行方向算起)决定。

个体临近范围

比这个更精细一些的行为模型在早期实践中进行过应用。其中包含预测性的障碍物躲避以及目标搜寻。这些使得 boids 可以飞过模拟环境并绕开障碍物,一个低优先级的目标搜寻可以使“鸟群”沿着事先编好的路径行进。

模拟boid集群躲避柱体障碍物 (1986)

CraigReynolds与 Symbolics Graphics 和 Whitney / Demos Production 的同事合作制作了利用boids群体模型的小短片: 《 Stanley andStellain:Breakingthe Ice 》。

(讲了鸟与鱼相爱,鸟儿冲破冰面到海里找鱼的故事

影片最早于87年 SIGGRAPH 电子剧院展出,同时在该会议上也发表了一篇关于 boids 的论文(https://www.red3d.com/cwr/papers/1987/boids.html)。88年的 SIGGRAPH 会议上也记录了一篇关于障碍物躲避的非正式论文(https://www.red3d.com/cwr/nobump/nobump.html)

1987年开始,逐渐出现了许多行为性动画领域 —— boids 模型的应用。1992年蒂姆波顿的《蝙蝠侠归来》则是第一例。电影里有电脑模拟的蝙蝠群和企鹅群。他们是由 Symbolics 开发的 boids 软件修改过的版本制作的。

大概就是这个蝙蝠场景了

更多关于boids的内容请查看:
https://www.red3d.com/cwr/boids/

接下来介绍boids的 processing 实现与 Unity 实现的例子。

processing的自带例子位于:

openprocessing上用 flocking 模拟捕食行为的例子:
https://www.openprocessing.org/sketch/126516

用 flocking 做 typography 字体动画:
https://www.openprocessing.org/sketch/162190

Unity的实现可以在 keijiro 的神仙 GitHub 上找到两个例子。

https://github.com/keijiro/Boids

里面有些Shader已经不能用了,需要手动改写。       或删掉相关文件即可运行。

点击添加 boid 个体

https://github.com/keijiro/TrailBoids

带尾巴的boids







—END—

我们的工作是探索编程和数学在艺术和设计中一切可能性,形式不限,艺术创作,跨界合作,展览展示,品牌活动等等,同时我们的使命是建设和维护中国本土创意编程和算法艺术社群,形式有开展线上教学,举办社群活动,策划举办艺术展览,挖掘发现本地社群里值得被传播的人和事通过自媒体进行传播

我们建了一个读者群

想进群和其他读者进行精神交流朋友

加客服小姐姐的微信(推送末尾)





联 系 我 们

算法艺术实验室


探索数学与编程在设计与艺术中一切之可能

用运算和美学让你变更酷

主营业务

科学艺术咨询 | 公共艺术 | 未来舞台美术 | 大数据可视化 | 设计人才猎头 | 品牌Event | 教育

Modified on

    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存